import React from 'react';
import {Icon} from 'antd';


module.exports = [
  {
    key: 'avatar',
    title: '头像',
    dataType: 'varchar',
    showType: 'image',
    sizeLimit: 500,  // 限制图片大小, 单位kb, 如果不设置这个属性, 就使用默认配置, 见config.js中相关配置
    max: 1,  // 最多可以上传几张图片? 默认1
    // 默认值, 可以是string也可以是string array, 跟max有关
    // defaultValue: 'http://jxy.me/about/avatar.jpg',
    width: 100,  // 图片在表格中显示时会撑满宽度, 为了美观要自己调整下
    // accept: '.jpg',  // 允许上传的文件类型, 可以省略, 默认值是".jpg,.png,.gif,.jpeg"
    placeholder: '请上传jpg格式, 分辨率不要超过200x200',  // 提示语
  },
  {
    key: 'id',  // 传递给后端的key
    title: 'ID',  // 前端显示的名字

    dataType: 'int',  // 数据类型, 目前可用的: int/float/varchar/datetime
    primary: true,
    showInForm: false,  // 这一列是否要在form中展示, 默认true
    disabled: false,
    render: (text, record) => text,
  },
  {
    key: 'lastname',  // 传递给后端的字段名
    title: '姓氏',  // 前端显示的名称
    placeholder: '输入姓氏',
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="user"/>),
    validator: [{required: true, message: '必填'}],
  },
  {
    key: 'firstname',  // 传递给后端的字段名
    title: '名字',  // 前端显示的名称
    placeholder: '输入名字',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="user"/>),
    validator: [{required: true, message: '必填'}],
  },
  {
    key: 'phone1',  // 传递给后端的字段名
    title: '电话',  // 前端显示的名称
    placeholder: '输入电话1',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mobile"/>),
  },
  {
    key: 'phone2',  // 传递给后端的字段名
    title: '电话',  // 前端显示的名称
    placeholder: '输入电话2',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mobile"/>),
  },
  {
    key: 'phone3',  // 传递给后端的字段名
    title: '电话',  // 前端显示的名称
    placeholder: '输入电话3',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mobile"/>),
  },
  {
    key: 'email',  // 传递给后端的字段名
    title: '邮箱',  // 前端显示的名称
    placeholder: '输入邮箱地址',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mail"/>),
  },
  {
    key: 'address',  // 传递给后端的字段名
    title: '住址',  // 前端显示的名称
    placeholder: '输入住址',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="home"/>),
  },
  {
    key: 'qq',  // 传递给后端的字段名
    title: 'QQ',  // 前端显示的名称
    placeholder: '输入QQ号',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mobile"/>),
  },
  {
    key: 'wechat',  // 传递给后端的字段名
    title: '微信',  // 前端显示的名称
    placeholder: '输入微信号',  // 提示语, 可选
    dataType: 'varchar',
    showType: 'normal',
    addonBefore: (<Icon type="mobile"/>),
  },
  {
    key: 'birthday',
    title: '生日',
    dataType: 'datetime',  // 日期等值查询
    addonBefore: (<Icon type="calendar"/>),
  },
];



// // 定义某个表的dataSchema, 结构跟querySchema很相似, 见下面的例子
// // 注意: 所有的key不能重复
//
// // 这个配置不只决定了table的schema, 也包括用于新增/删除的表单的schema
//
// module.exports = [
//   {
//     key: 'id',  // 传递给后端的key
//     title: 'ID',  // 前端显示的名字
//
//     // 其实dataType对前端的意义不大, 更重要的是生成后端接口时要用到, 所以要和DB中的类型一致
//     // 对java而言, int/float/varchar/datetime会映射为Long/Double/String/Date
//     dataType: 'int',  // 数据类型, 目前可用的: int/float/varchar/datetime
//
//     // 这一列是否是主键?
//     // 如果不指定主键, 不能update/delete, 但可以insert
//     // 如果指定了主键, insert/update时不能填写主键的值;
//     // 只有int/varchar可以作为主键, 但是实际上主键一般都是自增id
//     primary: true,
//
//     // 可用的showType: normal/radio/select/checkbox/multiSelect/textarea/image/file/cascader
//     showType: 'normal',  // 默认是normal, 就是最普通的输入框
//
//     showInTable: true,  // 这一列是否要在table中展示, 默认true
//     disabled: false, // 表单中这一列是否禁止编辑, 默认false
//
//     // 扩展接口, 决定了这一列渲染成什么样子
//     render: (text, record) => text,
//   },
//   {
//     key: 'name',
//     title: '用户名',
//     dataType: 'varchar',  // 对于普通的input框, 可以设置addonBefore/addonAfter
//     placeholder: '请输入用户名',
//     addonBefore: (<Icon type="user"/>),
//     addonAfter: '切克闹',
//     defaultValue: 'foolbear', // 默认值, 只在insert时生效, update时不生效
//   },
//   {
//     key: 'weight',
//     title: '体重(千克)',
//     dataType: 'int',
//     min: 10,
//     defaultValue: 70, // 默认值
//     disabled: true,
//     showInForm: false, // 这一列是否要在表单中展示, 默认true. 这种列一般都是不需要用户输入的, DB就会给一个默认值那种
//   },
//   {
//     key: 'gender',
//     title: '性别',
//     dataType: 'int',
//     showType: 'radio',
//     options: [{key: '1', value: '男'}, {key: '2', value: '女'}],
//     defaultValue: '1',
//     disabled: true,
//   },
//   {
//     key: 'marriage',
//     title: '婚否',
//     dataType: 'varchar',
//     showType: 'select',
//     options: [{key: 'yes', value: '已婚'}, {key: 'no', value: '未婚'}],
//
//     // 对于dataSchema可以设置校验规则, querySchema不能设置
//     // 设置校验规则, 参考https://github.com/yiminghe/async-validator#rules
//     validator: [{type: 'string', required: true, message: '必须选择婚否!'}],
//   },
//   {
//     key: 'interest',
//     title: '兴趣爱好',
//     dataType: 'int',
//     showType: 'checkbox',
//     options: [{key: '1', value: '吃饭'}, {key: '2', value: '睡觉'}, {key: '3', value: '打豆豆'}],
//     defaultValue: ['1', '2'],
//     validator: [{type: 'array', required: true, message: '请至少选择一项兴趣'}],
//     width: 120,  // 指定这一列的宽度
//   },
//   {
//     key: 'good',
//     title: '优点',
//     dataType: 'varchar',
//     showType: 'multiSelect',
//     options: [{key: 'lan', value: '懒'}, {key: 'zhai', value: '宅'}],
//     validator: [{type: 'array', required: true, message: '请选择优点'}],
//   },
//   {
//     key: 'pic1',
//     title: '头像',
//     dataType: 'varchar',
//     showType: 'image',  // 后端必须提供图片上传接口
//     showInTable: false,
//   },
//   {
//     key: 'desc',
//     title: '个人简介',
//     dataType: 'varchar',
//     showType: 'textarea',  // 用于编辑大段的文本
//     showInTable: false,
//     defaultValue: '个人简介个人简介个人简介',
//     validator: [{type: 'string', max: 20, message: '最长20个字符'}],
//   },
//   {
//     key: 'score',
//     title: '分数',
//     dataType: 'int',
//     max: 99,
//     min: 9,
//   },
//   {
//     key: 'gpa',
//     title: 'GPA',
//     dataType: 'float',
//     max: 9.9,
//     placeholder: '哈哈',
//     width: 50,
//   },
//   {
//     key: 'birthday',
//     title: '生日',
//     // 对于日期类型要注意下, 在js端日期被表示为yyyy-MM-dd HH:mm:ss的字符串, 在java端日期被表示为java.util.Date对象
//     // fastjson反序列化时可以自动识别
//     // 序列化倒是不用特别配置, 看自己需求, fastjson会序列化为一个字符串, 前端原样展示
//     dataType: 'datetime',
//     // 对于datetime而言, 配置showType是无意义的
//     placeholder: 'happy!',
//   },
//   {
//     key: 'xxday',
//     title: 'xx日期',
//     dataType: 'datetime',
//     defaultValue: '2017-01-01 11:22:33',
//     showInTable: false,
//     showInForm: false,   // 这个只是测试下...如果一列在table和form中都不出现, 那就不如直接去掉.
//     // 另外showInForm=false时, 很多针对form的字段都没意义了, 比如defaultValue/placeholder/validator等等
//   },
// ];
